/*
 * @Description: 函数重载 overload
 * @Autor: HuiSir<273250950@qq.com>
 * @Date: 2021-05-06 17:09:54
 * @LastEditTime: 2021-05-17 21:58:18
 */
/**
 * 定义：函数名相同，函数的参数及个数不同或返回值不同
 * 用途：为同一个函数提供多种输入或输出方式
 */
(function () {
    /**
     * 需求：定义一个add函数，可以接收两个字符串进行拼接，也可以两个数字求和
     */
    // 重载实现
    function add(x, y) {
        if (typeof x == "string" && typeof y == "string") {
            return x + " " + y;
        }
        else if (typeof x == "number" && typeof y == "number") {
            return x + y;
        }
    }
    console.log(add(5, 5)); // 10
    console.log(add("Hello", "World")); // Hello World
    var add2 = function (x, y) {
        return x + y;
    };
    console.log(add2(2, 5)); // 7
    console.log(add2("Hello", "World2")); // Hello World2
    // console.log(add2(5, "ewq")) // 报错：没有与此调用匹配的重载。
})();
